package com.feri.sg.goods.util;

import org.beetl.core.Configuration;
import org.beetl.core.GroupTemplate;
import org.beetl.core.Template;
import org.beetl.core.resource.ClasspathResourceLoader;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;

/**
 * ━━━━━━Feri出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　 ┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　  ┃
 * 　　┃　　　　　　 ┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃    邢哥的代码，怎么会，有bug呢，不可能！
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━永无BUG!━━━━━━
 *
 * @Description:
 * @Author：邢朋辉
 * @Date: 2023/6/21 14:41
 */
public class BeetlSingle {
    private GroupTemplate groupTemplate;
    private BeetlSingle(){
        try {
            groupTemplate=new GroupTemplate(new ClasspathResourceLoader("beetl/"),new Configuration());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static class BeetlInner{
        private static BeetlSingle single=new BeetlSingle();
    }
    public static BeetlSingle getInstance(){
        return BeetlInner.single;
    }

    /**
     * 生成对应的html页面
     * @param tem 模板文件名
     * @param map 模板中变量的值
     * @param os 输出流对象*/
    public boolean createHtml(String tem, Map map, OutputStream os){
        //1.获取模板
        Template template=groupTemplate.getTemplate(tem);
        template.binding(map);
        template.renderTo(os);
        return true;
    }

}
